47 research outputs found

    Configuring and installing debian gnu/linux on a 64 bit hp itanium2 architecture

    Get PDF
    This document describes the work performed to install the Debian GNU/Linux operating system on a Hewlett-Packard zx6000 workstation, based on the IntelItanium2 (McKinley) processor

    Multiparty session types, beyond duality

    Get PDF
    Multiparty Session Types (MPST) are a well-established typing discipline for message-passing processes interacting on sessions involving two or more participants. Session typing can ensure desirable properties: absence of communication errors and deadlocks, and protocol conformance. We propose a novel MPST theory based on a rely/guarantee typing system, that checks (1) the guaranteed behaviour of the process being typed, and (2) the relied upon behaviour of other processes. Crucially, our theory achieves type safety by enforcing a typing context liveness invariant throughout typing derivations. Unlike “classic” MPST works, our typing system does not depend on global session types, and does not use syntactic duality checks. As a result, our new theory can prove type safety for processes that implement protocols with complex inter-role dependencies, thus sidestepping an intrinsic limitation of “classic” MPST

    Lightweight session programming in scala

    Get PDF
    Designing, developing and maintaining concurrent applications is an error-prone and time-consuming task; most difficulties arise because compilers are usually unable to check whether the inputs/outputs performed by a program at runtime will adhere to a given protocol specification. To address this problem, we propose lightweight session programming in Scala: we leverage the native features of the Scala type system and standard library, to introduce (1) a representation of session types as Scala types, and (2) a library, called lchannels, with a convenient API for session-based programming, supporting local and distributed communication. We generalise the idea of Continuation-Passing Style Protocols (CPSPs), studying their formal relationship with session types. We illustrate how session programming can be carried over in Scala: how to formalise a communication protocol, and represent it using Scala classes and lchannels, letting the compiler help spotting protocol violations. We attest the practicality of our approach with a complex use case, and evaluate the performance of lchannels with a series of benchmarks

    On the Monitorability of Session Types, in Theory and Practice

    Get PDF
    Software components are expected to communicate according to predetermined protocols and APIs. Numerous methods have been proposed to check the correctness of communicating systems against such protocols/APIs. Session types are one such method, used both for static type-checking as well as for run-time monitoring. This work takes a fresh look at the run-time verification of communicating systems using session types, in theory and in practice. On the theoretical side, we develop a formal model of session-monitored processes. We then use this model to formulate and prove new results on the monitorability of session types, defined in terms of soundness (i.e., whether monitors only flag ill-typed processes) and completeness (i.e., whether all ill-typed processes can be flagged by a monitor). On the practical side, we show that our monitoring theory is indeed realisable: we instantiate our formal model as a Scala toolkit (called STMonitor) for the automatic generation of session monitors. These executable monitors can be used as proxies to instrument communication across black-box processes written in any programming language. Finally, we evaluate the viability of our approach through a series of benchmarks

    Photo-realistic image synthesis in volume rendering for rapid prototyping and CAM applications (draft)

    Get PDF
    This document describes some preliminary results of the application of direct volume visualization and realistic image synthesis techniques in Computer Aided Manufacturing (CAM) field. The final goal is to analyze the use volume data representation and direct volume visualization techniques respectively as basic geometric element and rendering method for numerical control (NC) process planning and simulation. In particular we want to study their application in the process of human organs replication by rapid prototyping techniques. Volume rendering techniques will be used to evaluate the geometric reconstruction of volumetric data (e.g. parts of human body extracted from a CT scan as the carotid arteries), in order to obtain the best polygonal approximation of a dataset. The polygonal model resulting from this evaluation stage will be used to drive its physical reconstruction via rapid prototyping. A volume rendering program, called VolCastIA, is presented. VolCastIA is a software environment built to evaluate the use of state of the art image synthesis methods in the volume rendering context

    On the Monitorability of Session Types, in Theory and Practice (Artifact)

    Get PDF
    In the paper "On the Monitorability of Session Types, in Theory and Practice" we study the monitorability of message-passing black-box processes against protocol specifications expressed as session types; we formalise a monitor synthesis procedure, prove its correctness, and discuss its implementation - as a tool that synthesises an executable monitor (in the Scala programming language) from a given session type. This artifact contains the aforementioned monitor synthesis tool, called STMonitor; it includes the tool source code, and documentation to reproduce the examples and benchmarks described in the paper

    Gvol: software libero per la manipolazione e visualizzazione di dati volumetrici

    Get PDF
    Questo studio è stato svolto in collaborazione con il gruppo GEMS del CRS4, all’interno delle attività inerenti il Progetto Laboratorio Avanzato per la Progettazione e Simulazione sul CalcolatoreLa rapresentazione volumetrica e' un importante schema di rappresentazione di modelli geometrici solidi. Questo lavoro illustra l'analisi e lo sviluppo di una libreria di componenti per la rappresentazione e la visualizzazione di dati volumetrici, chiamata GVol, orientata alla prototipazione rapida di applicazioni software general-purpose e all'ottimizzazione delle loro prestazioni. I settori applicativi di riferimento sono l'analisi e non distruttiva di materiali e le applicazione nel settore bio-medicale.Inedit

    Effpi: Verified Message-Passing Programs in Dotty

    Get PDF
    We present Effpi: an experimental toolkit for strongly-typed concurrent and distributed programming in Dotty, with verification capabilities based on type-level model checking. Effpi addresses a main challenge in creating and maintaining concurrent programs: errors like protocol violations, deadlocks, and livelocks are often spotted late, at run-time, when applications are tested or (worse) deployed. Effpi aims at finding them early, when code is written and compiled. Effpi provides: (1) a set of Dotty classes for describing communication protocols as types; (2) an embedded DSL for concurrent programming, with process-based and actor–based abstractions; (3) a Dotty compiler plugin to verify whether protocols and programs enjoy desirable properties,such as deadlock-freedom; and (4) an efficient run-time system for executing Effpi’s DSL-based programs. The combination of (1) and (2) allows the Dotty compiler to check whether an Effpi program implements a desired protocol/type; and this, together with (3), means that many typical concurrent programming errors are found and ruled out at compile-time. Further, (4) allows to run highly concurrent Effpi programs with millions of interacting processes/actors, by scheduling them on a limited number of CPU cores. In this paper, we give an overview of Effpi, illustrate its design and main features, and discuss its future

    A linear decomposition of multiparty sessions for safe distributed programming

    Get PDF
    Multiparty Session Types (MPST) is a typing discipline for message-passing distributed processes that can ensure properties such as absence of communication errors and deadlocks, and protocol conformance. Can MPST provide a theoretical foundation for concurrent and distributed programming in "mainstream" languages? We address this problem by (1) developing the first encoding of a full-fledged multiparty session π-calculus into linear π-calculus, and(2) using the encoding as the foundation of a practical toolchain for safe multiparty programming in Scala. Our encoding is type-preserving and operationally sound and complete. Crucially, it keeps the distributed choreographic nature of MPST, illuminating that the safety properties of multiparty sessions can be precisely represented with a decomposition into binary linear channels. Previous works have only studied the relation between (limited) multiparty and binary sessions via centralised orchestration means. We exploit these results to implement an automated generation of Scala APIs for multiparty sessions, abstracting existing libraries for binary communication channels. This allows multiparty systems to be safely implemented over binary message transports, as commonly found in practice. Our implementation is the first to support distributed multiparty delegation: Our encoding yields it for free, via existing mechanisms for binary delegation

    Generalised Multiparty Session Types with Crash-Stop Failures

    Get PDF
    Session types enable the specification and verification of communicating systems. However, their theory often assumes that processes never fail. To address this limitation, we present a generalised multiparty session type (MPST) theory with crash-stop failures, where processes can crash arbitrarily. Our new theory validates more protocols and processes w.r.t. previous work. We apply minimal syntactic changes to standard session ?-calculus and types: we model crashes and their handling semantically, with a generalised MPST typing system parametric on a behavioural safety property. We cover the spectrum between fully reliable and fully unreliable sessions, via optional reliability assumptions, and prove type safety and protocol conformance in the presence of crash-stop failures. Introducing crash-stop failures has non-trivial consequences: writing correct processes that handle all crash scenarios can be difficult. Yet, our generalised MPST theory allows us to tame this complexity, via model checking, to validate whether a multiparty session satisfies desired behavioural properties, e.g. deadlock-freedom or liveness, even in presence of crashes. We implement our approach using the mCRL2 model checker, and evaluate it with examples extended from the literature
    corecore